﻿struct Stu
{
	string name;
	int chinese;
	int math;
	int total;
};
struct Stu s1 = { "zhangsan", 85, 95, 180 };
//struct Stu
//{
//	string name;
//	int chinese;
//	int math;
//	int total;
//}; //结构体类型
//struct Stu s1;
//Stu s1; //可以省略struct
//Stu s[50];
//struct Stu
//{
//	string name;
//	int chinese;
//	int math;
//	int total;
//} s1, s[50];
//struct tag
//{
//	成员变量列表;//成员变量可以有1个，也可以有多个
//	成员函数列表;//成员函数可以有，也可以没有
//
//}结构体变量列表;//在声明结构体类型的同时，创建结构体变量，可以有多个，中间使⽤逗号隔开

//int singleNumber(int* nums, int numsSize)
//{
//	//这⾥nums是指针的形式，直接当做数组处理就⾏
//	int i = 0;
//	int ret = 0;
//	for (i = 0; i < numsSize; i++)
//	{
//		ret ^= nums[i];
//	}
//	return ret;
//}
//#include <iostream>
//using namespace std;
//int main()
//{
//	int a = 0;
//	int b = 0;
//	cin >> a >> b;
//	cout << "交换前：a = " << a << " b = " << b << endl;
//	a = a ^ b; //a' = a ^ b
//    b = a ^ b; //b' = a' ^ b == a ^ b ^ b == a
//    a = a ^ b; //a = a' ^ b' == a ^ b ^ a == b
//    cout << "交换后：a = " << a << " b = " << b << endl;
//	return 0;
//}
//bool isPowerOfTwo(int n)
//{
//	return (n > 0) && (n & -n) == n;
//}
//#include <cstdio>
//#define LED_CONTROL_BIT 0x04 // 00000100，第2位控制LED
//int main()
//{
//	unsigned char Register = 0x00; //初始状态为低电平，LED灭
//	//00000000
//	//00000100
//	//00000100
//	printf("Register: 0x%02X\n", Register); //输出: 0x00
//	Register ^= LED_CONTROL_BIT; // 反转第2位,第⼀次切换，LED亮
//	printf("Register: 0x%02X\n", Register); //输出: 0x04
//	//00000100
//	//00000100
//    Register ^= LED_CONTROL_BIT; //反转第2位,第⼆次切换，LED灭
//	printf("Register: 0x%02X\n", Register); //输出: 0x00
//	return 0;
//}
//#include <cstdio>
//#define LED_CONTROL_BIT 0x04 // 00000100，第2位控制LED
//							 // 11111011
//int main()
//{
//	unsigned char Register = 0x04; //初始状态为⾼电平，LED亮
//	Register &= ~LED_CONTROL_BIT;  //LED灭
//	printf("Register: 0x%02X\n", Register); //输出: 0x00
//	return 0;
//}